1[preset00]
2fRating=3.000000
3fGammaAdj=1.210000
4fDecay=1.000000
5fVideoEchoZoom=1.006596
6fVideoEchoAlpha=0.000000
7nVideoEchoOrientation=3
8nWaveMode=3
9bAdditiveWaves=0
10bWaveDots=1
11bWaveThick=1
12bModWaveAlphaByVolume=0
13bMaximizeWaveColor=0
14bTexWrap=0
15bDarkenCenter=0
16bRedBlueStereo=0
17bBrighten=0
18bDarken=1
19bSolarize=0
20bInvert=0
21fWaveAlpha=9.088520
22fWaveScale=0.499500
23fWaveSmoothing=0.000000
24fWaveParam=1.000000
25fModWaveAlphaStart=0.710000
26fModWaveAlphaEnd=1.300000
27fWarpAnimSpeed=1.000000
28fWarpScale=1.331000
29fZoomExponent=1.000000
30fShader=0.000000
31zoom=0.999514
32rot=0.000000
33cx=0.500000
34cy=0.500000
35dx=0.000000
36dy=0.000000
37warp=0.010000
38sx=1.000000
39sy=1.000000
40wave_r=0.990000
41wave_g=0.000000
42wave_b=0.000000
43wave_x=0.500000
44wave_y=0.500000
45ob_size=0.005000
46ob_r=0.300000
47ob_g=0.000000
48ob_b=0.500000
49ob_a=0.000000
50ib_size=0.260000
51ib_r=0.250000
52ib_g=0.250000
53ib_b=0.250000
54ib_a=0.000000
55nMotionVectorsX=64.000000
56nMotionVectorsY=2.759997
57mv_dx=0.000000
58mv_dy=-0.620000
59mv_l=5.000000
60mv_r=0.000000
61mv_g=1.000000
62mv_b=1.000000
63mv_a=0.400000
64per_frame_1=// Hello,
65per_frame_2=
66per_frame_3=// My beat detection algorithm had the aim of being able to detect and pickup a reliable beat throughout a song.  This has creative possibilities of being able to PREDICT coming beats, and to have things lasting for (say) half a beat, etc.  It still requires work, but I think I have made progress.
67per_frame_4=// I emplore you to have a look over it and try to underdstand it. Help me out here - I think it could be reallly good.
68per_frame_5=
69per_frame_6=//Telek Sterling =:-)
70per_frame_7=//Dilettante Extrodinaire
71per_frame_8=
72per_frame_9=
73per_frame_10=//rt = realtime (for use with beat count)
74per_frame_11=rt=time-start;
75per_frame_12=
76per_frame_13=//color cycling, yellow dynamic treble
77per_frame_14=wave_g = max(0,min(1,.25*sin(time*10)+treb/2));
78per_frame_15=wave_x = cos(time*2.12)*.33+.5;
79per_frame_16=wave_y = sin(time*1.5)*.13+.3;
80per_frame_17=
81per_frame_18=//initialisation bug patch
82per_frame_19=beatrate = if(below(beatcount,2),.1,beatrate);
83per_frame_20=
84per_frame_21=//beat = if(longer that 10 sec,1,above(bass, decaying threshold)*(can't be less that .4 of last beat length)
85per_frame_22=beat =if(above(rt-lastbeat,10),1, above(bass,1.6+.2*(lastbeat-rt)/beatrate)* above((rt-lastbeat)/beatrate,max(.4,.95-abs(accuracy*2))));
86per_frame_23=
87per_frame_24=//Testing auto-beat trigger... exciting stuff..
88per_frame_25=beat = if(beat,1, if(below(abs(accuracy),0.1)*below((lastbeat-rt)/beatrate,-1),1,0));
89per_frame_26=
90per_frame_27=//Comparison of last beat duration to current. Best value is 0. -1 and 5 are pretty bad.
91per_frame_28=accuracy =if(beat,(rt-nextbeat)/beatrate,accuracy);
92per_frame_29=
93per_frame_30=beatcount = beatcount + beat;
94per_frame_31=
95per_frame_32=w_a = if(beat,1,w_a*0);
96per_frame_33=wave_a = w_a;            // I can't actually change this, can I..... Oh well, it's here now.
97per_frame_34=
98per_frame_35=//Preserve beat rate
99per_frame_36=l_beatrate=if(beat,beatrate, l_beatrate);
100per_frame_37=//Record new beatrate
101per_frame_38=beatrate = if(beat,rt-lastbeat,beatrate);
102per_frame_39=
103per_frame_40=//Record most recent beat
104per_frame_41=lastbeat=if(beat,rt,lastbeat);
105per_frame_42=//Predict time of next beat
106per_frame_43=nextbeat=if(beat,rt+beatrate,nextbeat);
107per_frame_44=
108per_frame_45=
109per_frame_46=
110per_frame_47=
111per_frame_48=//Actual Display code:
112per_frame_49=
113per_frame_50=//Current direction of travel
114per_frame_51=state = beat * (state+1)%4+(1-beat)*state;
115per_frame_52=
116per_frame_53=//acceleration of horizon point
117per_frame_54=dddy = state%2-.5;
118per_frame_55=dddx = above(state,1.5)-.5;
119per_frame_56=
120per_frame_57=//adjustment factors to play with
121per_frame_58=ddx = dddx*.5;
122per_frame_59=ddy = dddy*.5;
123per_frame_60=
124per_frame_61=
125per_frame_62=q1 = (qq1*19+ddx)*.041;
126per_frame_63=//preserve q variables
127per_frame_64=qq1 = q1;
128per_frame_65=
129per_frame_66=q2 = (qq2*19+ddy)*.035;
130per_frame_67=qq2 = q2;
131per_frame_68=
132per_frame_69=//Decay to Blue!!
133per_frame_70=ob_a = 0.1*above(frame%10,6);
134per_frame_71=
135per_frame_72=
136per_frame_73=
137per_frame_74=
138per_frame_75=//Well, what do we want to monitor??
139per_frame_76=
140per_frame_77=//monitor = q1;
141per_frame_78=//monitor = beat;
142per_frame_79=//monitor = 1.6+.2*(lastbeat-rt)/beatrate;
143per_frame_80=monitor = (rt-lastbeat)/beatrate;
144per_frame_81=//monitor = accuracy;
145per_frame_82=//monitor = max(.4,.95-abs(accuracy*2));
146per_frame_83=//monitor = wave_a;
147per_frame_84=//monitor = wave_g;
148per_frame_85=//qwer =   accuracy + if(below(abs(accuracy),0.1)*above((lastbeat-rt)/beatrate,1),1,0)*1000;
149per_frame_86=//monitor = qwer;
150per_frame_87=//monitor  = (lastbeat-rt)/beatrate;
151per_pixel_1=dx = sin(.5-x)*.1+q1;
152per_pixel_2=dy = sin(.5-y)*.1+q2;
153per_frame_init_1=ddx = 0;
154per_frame_init_2=ddy = 0;
155per_frame_init_3=start = time;
156per_frame_init_4=rt = 0;
157per_frame_init_5=beatcount = 0;
158